Symbolic Model Checking for Asynchronous Boolean Programs
نویسندگان
چکیده
Software model checking problems generally contain two different types of non-determinism: 1) non-deterministically chosen values; 2) the choice of interleaving among threads. Most modern software model checkers can handle only one source of non-determinism efficiently, but not both. This paper describes a SAT-based model checker for asynchronous Boolean programs that handles both sources effectively. We address the first type of non-determinism with a form of symbolic execution and fix-point detection. We address the second source of non-determinism using a symbolic and dynamic partial-order reduction, which is implemented inside the SAT-solver’s case-splitting algorithm. The preliminary experimental results show that the new algorithm outperforms the existing software model checkers on large benchmarks.
منابع مشابه
Boolean Programs: A Model and Process For Software Analysis
A fundamental issue in model checking of software is the choice of a model for software. We present a model called boolean programs that is expressive enough to represent features in common programming languages and is amenable to model checking. We present a model checking algorithm for boolean programs using context-free-language reachability. The model checking algorithm allows procedure cal...
متن کاملCombining symbolic and partial order methods for model checking 1-safe Petri nets
In this work, methods are presented for model checking finite state asynchronous systems, more specifically 1-safe Petri nets, with the aim of alleviating the state explosion problem. Symbolic model checking techniques are used, combined with two partial order semantics known as net unfoldings and processes. We start with net unfoldings and study deadlock and reachability checking problems, usi...
متن کاملVeri cation of Java Programs using Symbolic Execution and Invariant Generation Corina S
Software veri cation is recognized as an important and difcult problem. We present a novel framework, based on symbolic execution, for the automated veri cation of software. The framework uses annotations in the form of method speci cations and loop invariants. We present a novel iterative technique that uses invariant strengthening and approximation for discovering these loop invariants automa...
متن کاملBebop: A Symbolic Model Checker for Boolean Programs
We present the design, implementation and empirical evaluation of Bebop|a symbolic model checker for boolean programs. Bebop represents control ow explicitly, and sets of states implicitly using BDDs. By harnessing the inherent modularity in procedural abstraction and exploiting the locality of variable scoping, Bebop is able to model check boolean programs with several thousand lines of code, ...
متن کاملRewriting Models of Boolean Programs
We show that rewrite systems can be used to give semantics to imperative programs with boolean variables, a class of programs used in software model-checking as overor underapproximations of real programs. We study the classes of rewrite systems induced by programs with different features like procedures, concurrency, or dynamic thread creation, and survey a number of results on their word prob...
متن کامل